using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class logged_Usuario : System.Web.UI.Page
{

    private ActivUFRJ.Classes.Usuario.Usuario usuario = ActivUFRJ.Utilitarios.Usuario.GetSessao();
    private ActivUFRJ.Classes.Usuario.Usuario usuarioDonoPagina; 

    protected void Page_Load(object sender, EventArgs e)
    {
        /****************************************************/
        // valida a sessao do usuario
        ActivUFRJ.Utilitarios.Usuario.ValidarSessao(usuario);
        /****************************************************/

        usuarioDonoPagina = new ActivUFRJ.Classes.Usuario.Usuario(Request.QueryString["ID"]);
        ActivUFRJ.Utilitarios.Validar.Usuario(usuarioDonoPagina);

        // caso o usuario seja 'eu mesmo', redirecione para sua pagina default
        if (usuarioDonoPagina.ID == usuario.ID) Response.Redirect(ActivUFRJ.Sistema.Paginas.DefaultUserPage);

        // guardo o log da visita
        usuarioDonoPagina.RegistrarVisita(usuario);


        CarregarControles();

        // artefatos q disponibilizo
        GetArtefatosQDisponibilizo();

        // comunidades q disponibilizo
        GetComunidadesQDisponibilizo();

        CarregarMeusArtefatos();
        CarregarMinhasComunidades();

    }

    private void CarregarControles()
    {
        lblDataRegistro.Text = usuarioDonoPagina.DataRegistro.ToLongDateString();
        lblFormacaoUsuario.Text = usuarioDonoPagina.FormacaoAcademica.Descricao;
        lblNomeUsuario.Text = usuarioDonoPagina.NomeCompleto;
        lblNomeDestaque.Text = usuarioDonoPagina.NomeCompleto;
        lblAreasInteresseUsuario.Text = ActivUFRJ.Utilitarios.Converter.ArrayParaString(ActivUFRJ.Classes.Geral.AreaInteresse.GetListaAreaInteresse(usuarioDonoPagina.ID));
        lblNumeroAcessos.Text = ActivUFRJ.Classes.Log.LogAcessoUsuario.VerificarNumeroDeAcessos(usuarioDonoPagina).ToString();
        lblUltimoAcesso.Text = ActivUFRJ.Classes.Log.LogAcessoUsuario.VerificarUltimoAcesso(usuarioDonoPagina).ToLongDateString();
        hlDeixarMensagem.NavigateUrl = "EnviarMensagem.aspx?IDDestinatario=" + usuarioDonoPagina.ID.ToString();
        hlIndicarComunidade.NavigateUrl = "Recomendar.aspx?categ=Usuario&ID=" + usuarioDonoPagina.ID.ToString();

        // carrega img do usuarioDonoPagina
        imgUsuario.ImageUrl = usuarioDonoPagina.LinkImagem;
    }

    private void GetComunidadesQDisponibilizo()
    {
        ActivUFRJ.Classes.Comunidade.Comunidade[] comunidadesQueDisponibilizo = ActivUFRJ.Classes.Comunidade.MgrComunidade.GetComunidadesQueCriei(usuarioDonoPagina.ID);
        if (comunidadesQueDisponibilizo != null) lblTotalComunidadesRegistrado.Text = comunidadesQueDisponibilizo.Length.ToString();
        else lblTotalComunidadesRegistrado.Text = "0";
    }

    private void GetArtefatosQDisponibilizo()
    {
        ActivUFRJ.Classes.Artefato.Artefato[] artefatosQueDisponibilizo = ActivUFRJ.Classes.Artefato.MgrArtefato.GetMeusArtefatos(usuarioDonoPagina.ID);

        if (artefatosQueDisponibilizo != null) lblTotalArtefatosDisponibilizados.Text = artefatosQueDisponibilizo.Length.ToString();
        else lblTotalArtefatosDisponibilizados.Text = "0";
    }

    private void CarregarMeusArtefatos()
    {
        dataListMeusArtefatos.DataSource = ActivUFRJ.Classes.Artefato.MgrArtefato.GetMeusArtefatosDT(usuarioDonoPagina.ID);
        dataListMeusArtefatos.DataBind();

        if (dataListMeusArtefatos.Items.Count == 0) lblArtefatoNaoEncontrado.Visible = true;
    }

    private void CarregarMinhasComunidades()
    {
        dataListMinhasComunidades.DataSource = ActivUFRJ.Classes.Comunidade.MgrComunidade.GetComunidadesQueCrieiDT(usuarioDonoPagina.ID);
        dataListMinhasComunidades.DataBind();

        if (dataListMinhasComunidades.Items.Count == 0) lblComunidadeNaoEncontrada.Visible = true;
    }
}
